overlay: deal gracefully with main widget being absent
authorMatthias Clasen <mclasen@redhat.com>
Sat, 5 Apr 2014 15:21:50 +0000 (11:21 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 5 Apr 2014 15:21:50 +0000 (11:21 -0400)
It can happen that we get a size request when the main widget
is still NULL. Currently we hit a critical in this case, and
stumble on. We can do better.
Opening a new tab in nautilus is hitting this case.
https://bugzilla.gnome.org/show_bug.cgi?id=727643

gtk/gtkoverlay.c

index c77b7cc3b3dd93b0e8995389a2643f5c8d30234f..49abeff4664b9390b3a035a00b5e4f8048c6ff44 100644 (file)
@@ -203,13 +203,20 @@ gtk_overlay_get_main_widget_allocation (GtkOverlay *overlay,
       main_alloc.width = gtk_widget_get_allocated_width (grandchild);
       main_alloc.height = gtk_widget_get_allocated_height (grandchild);
     }
-  else
+  else if (GTK_IS_WIDGET (main_widget))
     {
       main_alloc.x = 0;
       main_alloc.y = 0;
       main_alloc.width = gtk_widget_get_allocated_width (main_widget);
       main_alloc.height = gtk_widget_get_allocated_height (main_widget);
     }
+  else
+    {
+      main_alloc.x = 0;
+      main_alloc.y = 0;
+      main_alloc.width = 1;
+      main_alloc.height = 1;
+    }
 
   if (main_alloc_out)
     *main_alloc_out = main_alloc;